package org.eda.act4;
import java.io.*;

public class LeeFichero {
	
		public LeeFichero(){
			
		}
		
		public static Eleccion leerListaCandidatura(Eleccion el) {
	      File archivo = null;
	      FileReader fr = null;
	      BufferedReader br = null;
	      Provincia p=null;
	      Partido part=null;
	      ListaPartidos lp=new ListaPartidos();
	      ListaProvincias lpro= new ListaProvincias();
	      
	      try {

	         archivo = new File ("C:/2011-Ward-candidates-list-texto.txt");
	         fr = new FileReader (archivo);
	         br = new BufferedReader(fr);

	         String[] linea = new String[6];
	         
	   
	         while((linea=br.readLine().split(";"))!=null){
	        	 // linea: 0 Province; 1 Municipality; 2 Ward; 3 Party; 4 Surname; 5 Full Name

	             p=new Provincia(linea[0]);
	             p.getListaM().anadirMunicipio(linea[1]);
	             p.getListaM().buscarMunicipalidadYDevolver(linea[1]).getListaD().anadirDistrito(linea[2]);
	             p.getListaM().buscarMunicipalidadYDevolver(linea[1]).getListaD().buscarDistritoYDevolver(linea[2]).setMunip(linea[1]);
	             p.getListaM().buscarMunicipalidadYDevolver(linea[1]).getListaD().buscarDistritoYDevolver(linea[2]).getpListaC().anadirCandidatura(linea[4], linea[5], linea[3]);
	             lpro.anadirProvinciaDirectamente(p);
	             part=new Partido(linea[3]);
	        	 part.getListaC().anadirCandidaturaDirecta(p.getListaM().buscarMunicipalidadYDevolver(linea[1]).getListaD().buscarDistritoYDevolver(linea[2]).getpListaC().buscarCandidaturaYDevolver(linea[4],linea[5]));
	        	 lp.anadirPartidoDirectamente(part);
	             
	             
	         }
	         	el.setListaP(lp);
	         	el.setListaPro(lpro);
	      }
	      catch(Exception e){
	         e.printStackTrace();
	      }finally{

	         try{                    
	            if( null != fr ){   
	               fr.close();     
	            }                  
	         }catch (Exception e2){ 
	            e2.printStackTrace();
	         }
	      }

	
		return  el;
	    
	   }
	}


